package com.ruoyi.system.mapper;

import java.util.List;
import java.util.Map;

import com.ruoyi.system.domain.Project;
import org.apache.ibatis.annotations.Param;

/**
 * 工程管理Mapper接口
 * 
 * @author genghz
 * @date 2021-12-18
 */
public interface ProjectMapper 
{
    /**
     * 查询工程管理
     * 
     * @param taskId 工程管理主键
     * @return 工程管理
     */
    public Project selectProjectByTaskId(Long taskId);

    /**
     * 查询工程管理列表
     * 
     * @param project 工程管理
     * @return 工程管理集合
     */
    public List<Project> selectProjectList(Project project);

    /**
     * 新增工程管理
     * 
     * @param project 工程管理
     * @return 结果
     */
    public int insertProject(Project project);

    /**
     * 修改工程管理
     * 
     * @param project 工程管理
     * @return 结果
     */
    public int updateProject(Project project);

    /**
     * 删除工程管理
     * 
     * @param taskId 工程管理主键
     * @return 结果
     */
    public int deleteProjectByTaskId(Long taskId);

    /**
     * 批量删除工程管理
     * 
     * @param taskIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteProjectByTaskIds(Long[] taskIds);

    /**
     * 查询工程管理列表
     *
     * @return 工程管理集合
     */
    public List<String> getDistinctSystem(Long planId);

    public List<String> getDistinctSubSystem(String sysLel1);

    public List<String> getDistinctDept();

    public List<Project> getDistinctTask(Long planId);

    public List<Map<String, Long>> getXs(Long planId);

    public List<Project> getGanttData(@Param("planId") Long planId, @Param("sysLel1") Long sysLel1, @Param("sysLel2") Long sysLel2, @Param("sysLel3") Long sysLel3);

    public List<Project> getGanttLinks(@Param("planId") Long planId);
}
